A computing device typically includes a user interface that may be used to interact with the computing device. The user interface may include a display and/or input device such as a keyboard and/or mouse. The user may use the keyboard to generate a sequence of keyboard events (e.g., typing words). However, a user may incorrectly type a word. For example, a user may intend to type the word “thirst” but instead types the word “theist.” The user then either manually corrects the error or relies on an application executing on the computing device to automatically correct the error or suggest one or more replacement words (e.g., spelling corrections). In cases where the application on the computing device automatically corrects spelling errors or suggests one or more spelling corrections, the application typically includes one or more dictionaries or language data that are used to determine whether a received keystroke sequence corresponds to a known word or sentence, and also to determine an appropriate correction or a set of candidate replacement words or sentences when the received keystroke sequence does not correspond to a known word or sentence.